using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DominioSATT;
using RepositorioSATT;

namespace ServiceSATT
{
    public class ClubService : IClubService
    {

        void IClubService.ObtenerClub(IInterfazClub ui)
        {
            IClubRepositorio repositorio = new ClubRepositorio();
            int id = repositorio.ObtenerId(ui.Nombre);
            Club Objeto = repositorio.Buscar(id);
            ui.Federacion = Objeto.Federacion.Nombre;
            ui.Nombre = Objeto.Nombre;
            ui.Presidente = Objeto.Presidente.Nombre;
            ui.Estado = Objeto.Estado;
        }

    

        void IClubService.Actualizar(IInterfazClub ui)
        {
            IClubRepositorio repositorio = new ClubRepositorio();
            IFederacionRepositorio FedRep = new FederacionRepositorio();
            IPersonaRepositorio PersRep = new PersonaRepositorio();
            int IdClub = ui.IdClub;
            int IdFed = FedRep.ObtenerID(ui.Federacion);
            Federacion NuevaFederacion = FedRep.Buscar(IdFed);
            Persona NuevaPersona = PersRep.Obtener(ui.DNI);
            Club NuevoClub = new Club(IdClub, NuevaFederacion, ui.Nombre, NuevaPersona, ui.Estado);
                      
            
            if (IdClub !=0)
            {
                repositorio.Actualizar(NuevoClub);
                  
            }
            else
                repositorio.Agregar(NuevoClub);
            }

      
        void IClubService.ListaClub(IListadoClub ui)
        {
            IFederacionRepositorio Fed = new FederacionRepositorio();
            IClubRepositorio Club = new ClubRepositorio();
            List<Club> ListaClub = null;
            if (ui.NombreFederacion == "")
                ListaClub = Club.ListarTodos();
            else
            {
                int Id = Fed.ObtenerID(ui.NombreFederacion);
                ListaClub = Club.Listar(Id);
            }
            string[][] Lista = new string[ListaClub.Count][];
            int i = 0;
            foreach (Club club in ListaClub)
            {
                string[] valores = new string[] { club.Nombre, club.Presidente.Apellido + " " + club.Presidente.Nombre, club.Estado.ToString(),club.Presidente.Dni.ToString(),club.Idclub.ToString() };
                Lista[i] = valores;
                i++;
                
            }
            ui.LstClub = Lista;
        


        }

        #region IClubService Members


        public System.Data.DataTable ReporteClub()
        {
            IClubRepositorio club = new ClubRepositorio();
            return club.ReporteClub();
        }

        #endregion
    }
}
